#include "yijugeneratorobject.h"

YiJuGeneratorObject::YiJuGeneratorObject(QObject *parent) :
    GeneratorObject(parent)
{
}

void YiJuGeneratorObject::analysisData()
{
    int crIdx;;
    while ((crIdx = serialBuffer.indexOf('\r')) >= 0) {
        QByteArray item = serialBuffer.left(crIdx);
        if (item == "PON") {
            emit deviceStatus(GenPowerOn);
        } else if (item == "POF") {
            emit deviceStatus(GenPowerOff);
        } else if (item == "AA") {
            emit deviceStatus(GenShakeHand);
        } else if (item == "RFR") {
            emit deviceStatus(GenRFR);
        } else if (item == "ETMAS") {
            emit deviceStatus(GenMxMode);
        } else if (item == "ETMS") {
            emit deviceStatus(GenMsMode);
        } else if (item.left(3) == "KV ") {
            emit deviceStatus(GenKvValue, item.mid(3));
        } else if (item.left(3) == "MA ") {
            emit deviceStatus(GenMaValue, item.mid(3));
        } else if (item.left(3) == "MX ") {
            emit deviceStatus(GenMxValue, item.mid(3));
        } else if (item.left(3) == "MS ") {
            emit deviceStatus(GenMsValue, item.mid(3));
        } else if (item == "FCL") {
            emit deviceStatus(GenFCL);
        } else if (item == "FCS") {
            emit deviceStatus(GenFCS);
        } else if (item == "RFF") {
            emit deviceStatus(GenRFF);
        } else if (item == "FRY") {
            emit deviceStatus(GenFRY);
        } else if (item == "FRN") {
            emit deviceStatus(GenFRN);
        } else if (item.left(4) == "FKV ") {
            emit deviceStatus(GenFKvValue, item.mid(4));
        } else if (item.left(4) == "FMA ") {
            emit deviceStatus(GenFMaValue, item.mid(4));
        } else if (item.left(4) == "FMS ") {
            emit deviceStatus(GenFMsValue, item.mid(4));
        } else if (item == "IBY") {
            emit deviceStatus(GenIBY);
        } else if (item == "IBN") {
            emit deviceStatus(GenIBN);
        } else if (item == "AECY") {
            emit deviceStatus(GenAECY);
        } else if (item == "AECN") {
            emit deviceStatus(GenAECN);
        } else if (item.left(4) == "DEN ") {
            emit deviceStatus(GenDenValue, item.mid(4));
        } else if (item == "FILY") {
            emit deviceStatus(GenFILY);
        } else if (item == "FILN") {
            emit deviceStatus(GenFILN);
        } else if (item == "FICY") {
            emit deviceStatus(GenFICY);
        } else if (item == "FICN") {
            emit deviceStatus(GenFICN);
        } else if (item == "FIRY") {
            emit deviceStatus(GenFIRY);
        } else if (item == "FIRN") {
            emit deviceStatus(GenFIRN);
        } else if (item.left(3) == "ER ") {
            int errCode = item.mid(3).toInt();
            emit deviceStatus(GenError,
                              QString("E%1 - %2").arg(errCode, 2, 10, QChar('0'))
                              .arg(errHash.value(errCode, tr("Unknown error."))));
        }
        serialBuffer.remove(0, crIdx+1);
    }
}
